# Телеграм-бот для напоминания о днях рождения

## Описание
Бот напоминает о днях рождения участников чата. 
Для этого необходимо зарегистрировать себя в личных сообщения бота. 
Бот будет отправлять сообщение с поздравлением в день рождения.

## Установка и запуск
1. Клонировать репозиторий
2. Установить зависимости
```bash
go mod download
```
3. Создать бота через BotFather и получить токен
4. Создать файл .env в корневом каталоге репозитория и добавить туда только что полученный токен
```bash
TELEGRAM_APITOKEN=your_token
```
5. Запустить бота
```bash
go run main.go
```
6. Создать беседу, добавить туда бота и выдать ему права администратора
7. Ввести в беседе команду /start
8. Бот пришлет ID данной беседы. Его нужно скопировать и добавить в файл .env
```bash
CHAT_ID=your_chat_id
```
9. Перезапустить бота
10. Ввести в личных сообщениях команду /start и следовать инструкциям бота
11. Чтобы отписаться от напоминаний, ввести команду /leave в личные сообщения бота
12. Бот будет присылать напоминание о дне рождения в 9:00

## Структура проекта
- `main.go` - точка входа в программу. Здесь происходит инициализация бота, обработка сообщений и отправка напоминаний о днях рождения
- `handlers/handlers.go` - обработчики команд бота и сообщений
- `utils/utils.go` - вспомогательные функции
- `utils/utils_test.go` - тесты для вспомогательных функций, которые возможно протестировать без обращения к API Telegram.
Для запуска нужно ввести команду:
```bash
go test ./utils
```
- `.env` - файл с переменными окружения
- `go.mod`, `go.sum` - файлы для управления зависимостями
- `users.json` - файл с данными пользователей
- `README.md` - описание проекта

## Используемые библиотеки
- [github.com/go-telegram-bot-api/telegram-bot-api](https://pkg.go.dev/github.com/go-telegram-bot-api/telegram-bot-api) - библиотека для работы с Telegram Bot API
- [github.com/joho/godotenv](https://pkg.go.dev/github.com/joho/godotenv) - библиотека для работы с переменными окружения